library(tidyverse)
library(janitor)
library(plotly)
package ‘plotly’ was built under R version 3.6.2Registered S3 method overwritten by 'data.table':
method from
print.data.table
Registered S3 method overwritten by 'htmlwidgets':
method from
print.htmlwidget tools:rstudio
Attaching package: ‘plotly’
The following object is masked from ‘package:ggplot2’:
last_plot
The following object is masked from ‘package:stats’:
filter
The following object is masked from ‘package:graphics’:
layout
library(lubridate)
library(tsibble)
cancer_incidence <- read_csv("../clean_data/cancer_incidence_scotland.csv")
── Column specification ───────────────────────────────────────────────────────────────────────────────────────────────────────
cols(
health_board = col_character(),
cancer_site = col_character(),
sex = col_character(),
year = col_double(),
incidences_all_ages = col_double(),
crude_rate = col_double()
)
scotland <- read_csv("../clean_data/scotland_wide.csv")
── Column specification ───────────────────────────────────────────────────────────────────────────────────────────────────────
cols(
health_board = col_character(),
cancer_site = col_character(),
sex = col_character(),
year = col_double(),
incidences_all_ages = col_double(),
crude_rate = col_double()
)
borders <- cancer_incidence %>%
filter(health_board == "NHS Borders")
ggplotly(borders %>%
filter(cancer_site != "All cancer types",
sex == "All") %>%
ggplot() +
aes(x = year, y = crude_rate, fill = cancer_site) +
geom_area(size = 1L) +
scale_fill_hue() +
labs(x = "Year", y = "Crude rate", title = "Cancer incidence in the Borders", fill = "Type of cancer") +
theme_minimal())
borders %>%
filter(sex %in% "All",
cancer_site != "All cancer types") %>%
ggplot() +
aes(x = year, y = crude_rate, colour = cancer_site) +
geom_line(size = 1L) +
geom_smooth(span = 0.75) +
scale_color_hue() +
labs(x = "Year", y = "Crude rate", title = "Cancer incidence in the Borders", fill = "Type of cancer")+
theme_minimal()

nationwide_cancer <- rbind(cancer_incidence, scotland)
ggplotly(nationwide_cancer %>%
filter(sex %in% "All",
cancer_site == "All cancer types",
health_board %in% c("scotland_wide", "NHS Borders")) %>%
ggplot() +
aes(x = year, y = crude_rate, colour = health_board) +
geom_line(size = 1L) +
geom_smooth(span = 0.75)+
labs(x = "Year", y = "Crude rate", title = "Cancer incidence in the Borders compared to Scotland wide")+
scale_color_hue() +
theme_minimal())
`geom_smooth()` using method = 'loess' and formula 'y ~ x'
cancer_tsibble <- nationwide_cancer %>%
as_tsibble(index = year)
Error: A valid tsibble must have distinct rows identified by key and index.
ℹ Please use `duplicates()` to check the duplicated rows.
nationwide_cancer %>%
filter(year == 1994) %>%
slice_max(crude_rate, n = 10)
nationwide_cancer %>%
filter(cancer_site == "All cancer types",
sex == "All") %>%
group_by(year) %>%
slice_max(crude_rate, n = 5) %>%
ggplot()+
aes(x = year, y = crude_rate, fill = (health_board == "NHS Borders"))+
scale_fill_discrete(name = " ", labels = c("Other health boards", "NHS Borders"))+
labs(x = "Year", y = "Crude rate", title = "Top 5 Health Boards with Highest Incidence of Cancer in Scotland")+
geom_col()

ggplotly(borders %>%
filter(sex != "All",
cancer_site != "All cancer types") %>%
group_by(year, sex) %>%
slice_max(crude_rate, n = 3) %>%
ggplot()+
aes(x = year, y = crude_rate, colour = cancer_site)+
facet_wrap(~ sex)+
theme(legend.position = "none")+
labs(x = "Year", y = "Crude rate", title = "Top 3 highest incidences of cancer for men and women over the years")+
geom_line())
NA
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGphbml0b3IpCmxpYnJhcnkocGxvdGx5KQpsaWJyYXJ5KGx1YnJpZGF0ZSkKbGlicmFyeSh0c2liYmxlKQpgYGAKYGBge3J9CmNhbmNlcl9pbmNpZGVuY2UgPC0gcmVhZF9jc3YoIi4uL2NsZWFuX2RhdGEvY2FuY2VyX2luY2lkZW5jZV9zY290bGFuZC5jc3YiKQoKc2NvdGxhbmQgPC0gcmVhZF9jc3YoIi4uL2NsZWFuX2RhdGEvc2NvdGxhbmRfd2lkZS5jc3YiKQpgYGAKYGBge3J9CmJvcmRlcnMgPC0gY2FuY2VyX2luY2lkZW5jZSAlPiUgCiAgZmlsdGVyKGhlYWx0aF9ib2FyZCA9PSAiTkhTIEJvcmRlcnMiKQpgYGAKCmBgYHtyfQpnZ3Bsb3RseShib3JkZXJzICU+JSAKICBmaWx0ZXIoY2FuY2VyX3NpdGUgIT0gIkFsbCBjYW5jZXIgdHlwZXMiLAogICAgICAgICBzZXggPT0gIkFsbCIpICU+JSAKIGdncGxvdCgpICsKIGFlcyh4ID0geWVhciwgeSA9IGNydWRlX3JhdGUsIGZpbGwgPSBjYW5jZXJfc2l0ZSkgKwogZ2VvbV9hcmVhKHNpemUgPSAxTCkgKwogc2NhbGVfZmlsbF9odWUoKSArCiBsYWJzKHggPSAiWWVhciIsIHkgPSAiQ3J1ZGUgcmF0ZSIsIHRpdGxlID0gIkNhbmNlciBpbmNpZGVuY2UgaW4gdGhlIEJvcmRlcnMiLCBmaWxsID0gIlR5cGUgb2YgY2FuY2VyIikgKwogdGhlbWVfbWluaW1hbCgpKQpgYGAKYGBge3J9CmdncGxvdGx5KGJvcmRlcnMgJT4lCiBmaWx0ZXIoc2V4ICVpbiUgIkFsbCIsCiAgICAgICAgY2FuY2VyX3NpdGUgIT0gIkFsbCBjYW5jZXIgdHlwZXMiKSAlPiUKIGdncGxvdCgpICsKIGFlcyh4ID0geWVhciwgeSA9IGNydWRlX3JhdGUsIGNvbG91ciA9IGNhbmNlcl9zaXRlKSArCiBnZW9tX2xpbmUoc2l6ZSA9IDFMKSArCiBnZW9tX3Ntb290aChzcGFuID0gMC43NSkgKwogc2NhbGVfY29sb3JfaHVlKCkgKwogICBsYWJzKHggPSAiWWVhciIsIHkgPSAiQ3J1ZGUgcmF0ZSIsIHRpdGxlID0gIkNhbmNlciBpbmNpZGVuY2UgaW4gdGhlIEJvcmRlcnMiLCBmaWxsID0gIlR5cGUgb2YgY2FuY2VyIikrCiB0aGVtZV9taW5pbWFsKCkpCmBgYAoKYGBge3J9Cm5hdGlvbndpZGVfY2FuY2VyIDwtIHJiaW5kKGNhbmNlcl9pbmNpZGVuY2UsIHNjb3RsYW5kKQpgYGAKYGBge3J9CgpnZ3Bsb3RseShuYXRpb253aWRlX2NhbmNlciAlPiUKIGZpbHRlcihzZXggJWluJSAiQWxsIiwKICAgICAgICBjYW5jZXJfc2l0ZSA9PSAiQWxsIGNhbmNlciB0eXBlcyIsCiAgICAgICAgaGVhbHRoX2JvYXJkICVpbiUgYygic2NvdGxhbmRfd2lkZSIsICJOSFMgQm9yZGVycyIpKSAlPiUKIGdncGxvdCgpICsKIGFlcyh4ID0geWVhciwgeSA9IGNydWRlX3JhdGUsIGNvbG91ciA9IGhlYWx0aF9ib2FyZCkgKwogZ2VvbV9saW5lKHNpemUgPSAxTCkgKwogIGdlb21fc21vb3RoKHNwYW4gPSAwLjc1KSsKICBsYWJzKHggPSAiWWVhciIsIHkgPSAiQ3J1ZGUgcmF0ZSIsIHRpdGxlID0gIkNhbmNlciBpbmNpZGVuY2UgaW4gdGhlIEJvcmRlcnMgY29tcGFyZWQgdG8gU2NvdGxhbmQgd2lkZSIpKwogc2NhbGVfY29sb3JfaHVlKCkgKwogdGhlbWVfbWluaW1hbCgpKQpgYGAKYGBge3J9CmNhbmNlcl90c2liYmxlIDwtIG5hdGlvbndpZGVfY2FuY2VyICU+JSAKICBhc190c2liYmxlKGluZGV4ID0geWVhcikKYGBgCmBgYHtyfQpuYXRpb253aWRlX2NhbmNlciAlPiUgCiAgZmlsdGVyKHllYXIgPT0gMTk5NCkgJT4lIAogIHNsaWNlX21heChjcnVkZV9yYXRlLCBuID0gMTApCmBgYAoKYGBge3J9Cm5hdGlvbndpZGVfY2FuY2VyICU+JSAKICBmaWx0ZXIoY2FuY2VyX3NpdGUgPT0gIkFsbCBjYW5jZXIgdHlwZXMiLAogICAgICAgICBzZXggPT0gIkFsbCIpICU+JSAKICBncm91cF9ieSh5ZWFyKSAlPiUgCiAgc2xpY2VfbWF4KGNydWRlX3JhdGUsIG4gPSA1KSAlPiUgCiAgZ2dwbG90KCkrCiAgYWVzKHggPSB5ZWFyLCB5ID0gY3J1ZGVfcmF0ZSwgZmlsbCA9IChoZWFsdGhfYm9hcmQgPT0gIk5IUyBCb3JkZXJzIikpKwogIHNjYWxlX2ZpbGxfZGlzY3JldGUobmFtZSA9ICIgIiwgbGFiZWxzID0gYygiT3RoZXIgaGVhbHRoIGJvYXJkcyIsICJOSFMgQm9yZGVycyIpKSsKICBsYWJzKHggPSAiWWVhciIsIHkgPSAiQ3J1ZGUgcmF0ZSIsIHRpdGxlID0gIlRvcCA1IEhlYWx0aCBCb2FyZHMgd2l0aCBIaWdoZXN0IEluY2lkZW5jZSBvZiBDYW5jZXIgaW4gU2NvdGxhbmQiKSsKICBnZW9tX2NvbCgpCmBgYApgYGB7cn0KZ2dwbG90bHkoYm9yZGVycyAlPiUgCiAgZmlsdGVyKHNleCAhPSAiQWxsIiwKICAgICAgICAgY2FuY2VyX3NpdGUgIT0gIkFsbCBjYW5jZXIgdHlwZXMiKSAlPiUgCiAgICBncm91cF9ieSh5ZWFyLCBzZXgpICU+JSAKICBzbGljZV9tYXgoY3J1ZGVfcmF0ZSwgbiA9IDMpICU+JSAKICBnZ3Bsb3QoKSsKICBhZXMoeCA9IHllYXIsIHkgPSBjcnVkZV9yYXRlLCBjb2xvdXIgPSBjYW5jZXJfc2l0ZSkrCiAgZmFjZXRfd3JhcCh+IHNleCkrCiAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikrCiAgICBsYWJzKHggPSAiWWVhciIsIHkgPSAiQ3J1ZGUgcmF0ZSIsIHRpdGxlID0gIlRvcCAzIGhpZ2hlc3QgaW5jaWRlbmNlcyBvZiBjYW5jZXIgZm9yIG1lbiBhbmQgd29tZW4gb3ZlciB0aGUgeWVhcnMiKSsKICBnZW9tX2xpbmUoKSkKICAKYGBgCgo=